package com.jwds.digital.bios.business.core.infrastructure.dto.belt.assembler;

import com.jwds.digital.bios.business.core.infrastructure.dto.belt.BeltProtectionStatusReqDTO;
import com.jwds.digital.bios.business.core.infrastructure.vo.belt.BeltProtectionStatusRespVO;
import com.jwds.digital.bios.business.core.infrastructure.entity.belt.BeltProtectionStatus;
import java.util.Objects;

/**
 * BeltProtectionStatus DTO与Entity之间的相互转换
 *
 * @author 林柏云
 * @date 2024-10-24
 */
public class BeltProtectionStatusAssembler {

  /**
  * 将传输对象转换为实体对象
  *
  * @param dto 传输对象
  * @return 实体对象
  */
  public static BeltProtectionStatus dto2entity(BeltProtectionStatusReqDTO dto)  {
    if (dto == null) {
      return null;
    }
    BeltProtectionStatus entity = new BeltProtectionStatus();
    entity.setTaskId(dto.getTaskId());
    entity.setRouteId(dto.getRouteId());
    entity.setBeltId(dto.getBeltId());
    entity.setCollectionTime(dto.getCollectionTime());
    entity.setRopeStatus(dto.getRopeStatus());
    entity.setBlockStatus(dto.getBlockStatus());
    entity.setTearStatus(dto.getTearStatus());
    entity.setSevereDeviationStatus(dto.getSevereDeviationStatus());
    entity.setMinorDeviationStatus(dto.getMinorDeviationStatus());
    entity.setSlipStatus(dto.getSlipStatus());
    return entity;
  }

  /**
  * 将传输对象转换为实体对象
  *
  * @param dto 传输对象
  * @param entity 原实体对象
  * @return 实体对象
  */
  public static BeltProtectionStatus dto2entity(BeltProtectionStatusReqDTO dto, BeltProtectionStatus entity){
    if (dto == null) {
      return null;
    }
    if(Objects.nonNull(dto.getTaskId())) {
      entity.setTaskId(dto.getTaskId());
    }
    if(Objects.nonNull(dto.getRouteId())) {
      entity.setRouteId(dto.getRouteId());
    }
    if(Objects.nonNull(dto.getBeltId())) {
      entity.setBeltId(dto.getBeltId());
    }
    if(Objects.nonNull(dto.getCollectionTime())) {
      entity.setCollectionTime(dto.getCollectionTime());
    }
    if(Objects.nonNull(dto.getRopeStatus())) {
      entity.setRopeStatus(dto.getRopeStatus());
    }
    if(Objects.nonNull(dto.getBlockStatus())) {
      entity.setBlockStatus(dto.getBlockStatus());
    }
    if(Objects.nonNull(dto.getTearStatus())) {
      entity.setTearStatus(dto.getTearStatus());
    }
    if(Objects.nonNull(dto.getSevereDeviationStatus())) {
      entity.setSevereDeviationStatus(dto.getSevereDeviationStatus());
    }
    if(Objects.nonNull(dto.getMinorDeviationStatus())) {
      entity.setMinorDeviationStatus(dto.getMinorDeviationStatus());
    }
    if(Objects.nonNull(dto.getSlipStatus())) {
      entity.setSlipStatus(dto.getSlipStatus());
    }
    return entity;
  }

  /**
  * 将实体对象转换为传输对象
  *
  * @param entity 实体对象
  * @return 传输对象
  */
  public static BeltProtectionStatusRespVO entity2dto(BeltProtectionStatus entity) {
    if (entity == null) {
      return null;
    }
    BeltProtectionStatusRespVO dto = new BeltProtectionStatusRespVO();
    dto.setId(entity.getId());
    dto.setTaskId(entity.getTaskId());
    dto.setRouteId(entity.getRouteId());
    dto.setBeltId(entity.getBeltId());
    dto.setCollectionTime(entity.getCollectionTime());
    dto.setRopeStatus(entity.getRopeStatus());
    dto.setBlockStatus(entity.getBlockStatus());
    dto.setTearStatus(entity.getTearStatus());
    dto.setSevereDeviationStatus(entity.getSevereDeviationStatus());
    dto.setMinorDeviationStatus(entity.getMinorDeviationStatus());
    dto.setSlipStatus(entity.getSlipStatus());
    dto.setCreateUser(entity.getCreateUser());
    dto.setCreateTime(entity.getCreateTime());
    dto.setModifyUser(entity.getModifyUser());
    dto.setModifyTime(entity.getModifyTime());
    return dto;
  }

}
